package com.tp.server;

/**
 * Registro de cache que guarda, valida y administra la validez de 
 * los datos buscados recientemente.
 * 
 * @author Franke Oviedo Triay
 * 
 *
 */
public class CacheRegistry {
	
	private Long regTime;
	private String ip;
	private static final Long LIVE_TIME = 20000l;
	
	/**
	 * Constructor.
	 * @param ip Ip que se guardara en cache
	 */
	public CacheRegistry(String ip){
		this.regTime = System.currentTimeMillis();
		this.setIp(ip);
	}
	
	/**
	 * Analiza la validez del registro comparando su tiempo 
	 * de creacion con el tiempo actual.
	 * 
	 * @return boolean verdadero si es valido, falso si es una entrada antigua.
	 */
	public boolean isUpToDate(){
		//si la diferencia entre el tiempo actual y el tiempo en que se creo el 
		//registro es mayor a 20 seg. el registro se considera antiguo.
		if((System.currentTimeMillis() - this.regTime) <  LIVE_TIME ){
			return true;
		}
		
		return false;
	}
	
	/**
	 * En caso de ser encontrado el registro en cache actualiza el tiempo
	 * del registro al momento de la ultima consulta.
	 * 
	 */
	public void updateTime(){
		this.regTime = System.currentTimeMillis();
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}
	
}
